import axios from 'axios'

import store from '@/store'
import router from '@/router'

const ajax = axios.create({
  baseURL: 'http://toutiao.itheima.net'
})

// 响应拦截器
ajax.interceptors.response.use(
  resp => { // 成功，http状态码以2、3开头走成功回调
    // 今后组件拿到的就是数组，无需多写一层.data
    return resp.data
  }, error => { // 失败，http状态码以4、5开头走失败回调
    if (error.response.status === 401) { // token过期或者无效
      // 1. token续签（配合refreshToken)
      // 2. 重新登录
      // 2.1 清空vuex和本地的token和refreshToken
      store.commit('user/setToken', null)
      store.commit('user/setRefreshToken', null)
      // 2.2 跳转到登录页
      router.replace('/login')
    }
  })
